package com.icongyou.enterprise.talent_analysis.service;

import com.icongyou.enterprise.talent_analysis.entity.StudentInsight;
import com.icongyou.enterprise.talent_analysis.entity.TaskCategoryAnalysis;

/**
 * AI辅助洞察服务
 * 提供学生岗位推荐、优缺点分析等AI辅助功能
 * 独立于雷达图和词云图模块，但可使用它们的数据
 */
public interface AIInsightService {
    
    /**
     * 生成学生的完整AI洞察报告
     * 包含岗位推荐、优缺点分析、综合评价等
     * 
     * @param studentId 学生ID
     * @param hrUserId HR用户ID(可选,用于获取模板偏好)
     * @return 学生洞察结果
     */
    StudentInsight generateStudentInsight(String studentId, String hrUserId);
    
    /**
     * 分析学生在不同任务类别中的表现
     * 用于识别学生擅长的领域
     * 
     * @param studentId 学生ID
     * @return 任务类别表现分析
     */
    TaskCategoryAnalysis analyzeTaskCategoryPerformance(String studentId);
    
    /**
     * 单独获取岗位推荐（不生成完整报告）
     * 
     * @param studentId 学生ID
     * @param topN 推荐岗位数量（1-5）
     * @param hrUserId HR用户ID(可选,用于获取模板偏好)
     * @return 岗位推荐列表
     */
    java.util.List<com.icongyou.enterprise.talent_analysis.entity.JobRecommendation> recommendJobs(
        String studentId, 
        int topN,
        String hrUserId
    );
    
    /**
     * 分析学生的优势和劣势
     * 
     * @param studentId 学生ID
     * @param hrUserId HR用户ID(可选,用于获取模板偏好)
     * @return Map包含strengths和weaknesses两个key
     */
    java.util.Map<String, java.util.List<String>> analyzeStrengthsAndWeaknesses(String studentId, String hrUserId);
    
    /**
     * 生成职业发展建议
     * 
     * @param studentId 学生ID
     * @param hrUserId HR用户ID(可选,用于获取模板偏好)
     * @return 建议文本
     */
    String generateCareerAdvice(String studentId, String hrUserId);
}
